package Autopista;

import java.util.Random;

/**
 * @author Nati y Pablo
 */
public class Autopista {
	/* ******************************** Variables ******************************** */
	Calle este; 
	Calle oeste; 
	Calle sur;
	
	/* ******************************* Constructor ******************************* */
	public Autopista() {
		este = new Calle ("ESTE", new Semaforo("ESTE"));
		oeste = new Calle ("OESTE", new Semaforo("OESTE"));
		sur = new Calle ("SUR" ,new Semaforo("SUR")); 
	}
	
	static class ThreadAutopista extends Thread {
		Calle calle; 
		Calle calleADoblar; 
		
		public ThreadAutopista(Calle calle, Calle calleADoblar) {
			this.calle = calle;
			this.calleADoblar = calleADoblar;
		}

		public void run() {
			while (true){
				calle.agregarAuto(new Auto(calle, calleADoblar)); 
				try {
					Thread.sleep(new Random ().nextInt(5000)+5000);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
		}
	}
	
	public static void main(String[] args) {
		Autopista autopista = new Autopista();
		new ThreadAutopista(autopista.este, autopista.oeste).start();
		new ThreadAutopista(autopista.este, autopista.sur).start();
		new ThreadAutopista(autopista.oeste, autopista.este).start();
		new ThreadAutopista(autopista.oeste, autopista.sur).start();
		new ThreadAutopista(autopista.sur, autopista.este).start();
		new ThreadAutopista(autopista.sur, autopista.oeste).start();
	}
}
